<?php

namespace DesignNew\Visitor;
/**
 * 当需要为动物添加新动作时，我们本可以通过动物支持继承来实现，但是需要修改动物类。
 * 但现在就不必修改动物类了。
 * 例如，假设需要向动物添加跳跃行为，我们可以通过创建一个新的访问者来简单地添加此行为，即：
 */
class Jump implements AnimalOperation
{
    public function visitMonkey(Monkey $monkey)
    {
        echo "Jumped 20 feet high! on to the tree!";
    }

    public function visitLion(Lion $lion)
    {
        echo "Jumped 7 feet! Back on the ground!";
    }

    public function visitDolphin(Dolphin $dolphin)
    {
        echo "Walked on water a little and disappeared";
    }
}